const ajax = require('../promise基础使用/用promise封装原生ajax')
function* main () {
  try {
    const users = yield ajax('/api/users.json')
    console.log(users)
    const posts = yield ajax('/api/posts.json')
    console.log(posts)
    const urls = yield ajax('/api/url.json')
    console.log(urls)
  } catch (e) {
    console.log(e)
  }
}

function co (generator) {//能生成和async一样的结果。
  const g = generator()
  function handleResult (result) {//利用递归遍历生成器里面的接口，如果用async函数就不需要了。
    if (result.done) return // 生成器函数结束
    result.value.then(data => {
      handleResult(g.next(data))
    }, error => {
      g.throw(error)
    })
  }
  handleResult(g.next())
}
co(main)